﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using DataAccessLayer;
using Entities;
using BusinessLogicLayer;

namespace QuanLyTKB_TienDoGD.QuanLyTaiKhoan
{
    public partial class frmDangNhap : Office2007Form
    {
        public IRepository<TaiKhoan> _repository;   // Khai báo thuộc tính _repository
        public TaiKhoanManager _manager;    // khai báo thuộc tính _manager
        public TaiKhoan tk; // khai báo thuộc tính tk
        
        public string PassHeThong = "Our@*92#";    // Mật khẩu mặc định của hệ thống

        public frmDangNhap()
        {
            InitializeComponent();
            
        }

        /// <summary>
        /// xử lý sự kiện load của form đăng nhập
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void frmDangNhap_Load(object sender, EventArgs e)
        {
            _repository = new Repository<TaiKhoan>();
            _manager = new TaiKhoanManager(_repository);
        }

        /// <summary>
        /// xử lý sự kiện khi nhấn vào button thoát
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        /// <summary>
        /// xử lý sự kiện khi nhấn vào button đăng nhập
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnDangNhap_Click(object sender, EventArgs e)
        {
            XuLyTienTrinh.HienThiTienTrinh(this);


            tk = new TaiKhoan();
            tk.Username = "admin";
            tk.Password = txtMatKhau.Text;

            if (tk.Password == PassHeThong) 
            {
                XuLyTienTrinh.AnTienTrinh(this);
                frmMain frmm = new frmMain();
                this.Hide();
                frmm.ShowDialog();
                this.Close();
            }

            var result = _manager.Validate(tk);
            if (result.Valid)
            {
                var aresult = _manager.Find(s => s.Username.ToLower().CompareTo(tk.Username.ToLower()) == 0);
                if (aresult.Success)
                {
                    TaiKhoan newtk = aresult.Result[0];
                    if (tk.Password == newtk.Password)
                    {
                        XuLyTienTrinh.AnTienTrinh(this);
                        frmMain frmm = new frmMain();
                        this.Hide();
                        frmm.ShowDialog();
                        this.Close();

                    }
                    else
                    {
                        MessageBox.Show("Sai mật khẩu", "Thông Báo");
                        XuLyTienTrinh.AnTienTrinh(this);
                    }
                }
                else
                {
                    MessageBox.Show(aresult.GetErrosMessages());
                    XuLyTienTrinh.AnTienTrinh(this);
                }
            }
            else
            {
                MessageBox.Show(result.ToString());
                XuLyTienTrinh.AnTienTrinh(this);
            }

        }

        /// <summary>
        /// xử lý sự kiện khi enter trong textbox mật khẩu.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtMatKhau_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                btnDangNhap_Click(sender, e);
            }
        }

      

    }
}
